#pragma once
#include "Executor.hpp"
namespace adas
{
    class PoseHandler final
    {
    public:
        PoseHandler(const Pose& pose) noexcept;
        PoseHandler(const PoseHandler&) = delete;
        PoseHandler& operator=(const PoseHandler&) = delete;//初始化PoseHandler类的多种函数声明
    public:
        void Move(void) noexcept;//前进函数
        void TurnLeft(void) noexcept;//左转函数
        void TurnRight(void) noexcept;//右转函数
        void Backward(void) noexcept;//后退函数
        void Fast(void) noexcept;//加速函数
        bool IsFast(void) const noexcept;//加速状态判断函数
        void Reverse(void) noexcept;//后退函数
        bool IsReverse(void) const noexcept;//后退状态判断函数
        void Bus(void) noexcept;//（公交车/跑车）函数
        bool IsBus(void) const noexcept;//（公交车/跑车）判断函数
        Pose Query(void) const noexcept;//状态数据读取函数
    private:
        bool reverse{false};//后退变量
        bool fast{false};//加速变量
        bool bus{false};//（公交车/跑车）变量
        Pose pose;//状态参量
    }; 
}